Conventionally, a leg type movable robot has a problem that a reaction force caused by the moving robot swinging each leg overcomes the friction force between the foot (that is, the end portion of the leg) and the floor, causing a rotational slipping (spin) of the foot with respect to the floor, a rotation of the posture of the whole robot about the vertical axis and, thus, a deviation from a desired gait.
In addition, desired gaits to be generated are not always ones for straight walking with the body always kept in a vertical (upright) posture. A desired gait may involve a rotation or a forward, rearward, leftward or rightward inclination of the whole robot or the body thereof. That is, a desired gait may involve a posture rotation of the whole robot (or a posture rotation of a representative part, such as the body). Thus, in this specification, the posture rotation in the desired gait is referred to as a desired posture rotation. The phenomenon to be primarily addressed in this specification is a deviation of an actual posture rotation of the whole robot (or an actual posture rotation of a representative part, such as the body) from the desired posture rotation. Strictly speaking, this phenomenon should be referred to as a “perturbation from the desired posture rotation” or “a posture rotation perturbation”. However, this phenomenon will be abbreviated as a “posture rotation” hereinafter unless there is no possibility of confusion with the “desired posture rotation”.
In the following, the phenomenon of directional deviation from a desired gait due to a posture rotation of the whole robot about the vertical axis will be particularly referred to as a spin.
In addition, if the robot runs, the vertical position of the robot tends to deviate from the desired gait during a period in which all the legs float in the air (that is, a floating period).
Not to deviate from the trajectory of the desired gait thereof, that is, the desired path, the robot has to estimate the self position/posture with high precision.
In addition, if the robot has an environment recognition device, such as a video camera, mounted thereon, the self position/posture has to be estimated with high precision in order to capture a target object to be gazed, such as a landmark previously registered in map information, at a predetermined position in the image (for example, the center of the image).
In addition, in order for the environment recognition device, such as a video camera, to determine the position of a target object in a global coordinate system set in the environment (that is, a coordinate system fixed with respect to the floor in the environment in which the robot moves), the self position/posture in the global coordinate system has to be estimated with high precision.
As a method of estimating the self position/posture without using the environment recognition device, such as a video camera, an inertial navigation system used for guiding a rocket or the like has been known.
However, the inertial navigation system estimates the position of the robot by integrating the detection value of the accelerometer two times, and thus, integration errors tend to accumulate to a significant extent. Therefore, the accelerometer is required to have an extremely high detection accuracy. In addition, in order to use the inertial navigation system, the robot has to start moving from a state where it is fixed with respect to the floor (or ground) so that the initial values of the positions and velocity of the robot are 0. However, it is difficult to keep the leg type movable robot at complete rest, because the joints have to constantly move slightly to stabilize the posture of the robot even when the robot, as a whole, is at rest in an upright posture. Therefore, the inertial navigation calculation is started in a state where the initial values of the position and velocity are not 0, and thus, the estimation error tends to be significant.
As for rockets and airplanes, a global positioning system (GPS) is used which corrects the self position/posture based on the relative positional relationship between the rocket or airplane and an external device, such as a satellite or a radar or a beacon on the ground. A similar system might be used for robots, too. However, it is difficult to achieve measurement of the height of a foot (that is, the end of a leg) of the robot from the floor with a precision on the order of millimeters or centimeters at a low cost, for example.
The present invention has been devised in view of such circumstances, and an object thereof is to provide a self-position estimating device that can estimate the self-position of a robot with high precision. In particular, an object of the present invention is to provide a self-position estimating device that can estimate the self position/posture of a robot with high precision even if the robot is in a state where the movement acceleration varies greatly horizontally or vertically, in a state where all the legs float in the air, which occurs when the robot is running, for example, or in a state where a posture rotation (or a spin) of the whole robot occurs due to a rotational slipping of a foot sole with respect to the floor.
In addition, an object of the present invention is to provide a self-position estimating device that can estimate the self-position of a robot and then use the estimated self-position to achieve adequate gazing control for controlling the direction of an environment recognition device, such as a video camera, mounted on the robot in such a manner that a target object is captured at an appropriate position in an image taken by the environment recognition device.
In addition, an object of the present invention is to provide a self-position estimating device that can recognize an object, such as a landmark, precise information about which has been previously given to the device, with environment recognition means, such as a video camera, and achieve a higher precision of estimation of the self-position of the robot based on the information resulting from the recognition.
Furthermore, an object of the present invention is to provide a self-position estimating device that can recognize, using an estimated self position/posture, the position/posture or geometry of a floor surface or an obstacle with high precision using environment recognition means, such as a video camera.